package com.ruoyi.qywx.service.inters;

import com.ruoyi.common.core.cache.Meta;
import com.ruoyi.qywx.callback.txl.ExternalUserEncrypt;
import com.ruoyi.qywx.entity.ExtContact;
import com.ruoyi.qywx.entity.ExtFollowContact;
import com.ruoyi.qywx.getway.entity.QyExtContactRemark;
import com.ruoyi.qywx.model.vo.BindTagVo;
import com.ruoyi.qywx.model.vo.CustomerFollowerVo;

import java.util.List;

/**
 * @author : hcl
 * @Date : 2023/8/22 16:05
 */
public interface ExtContactService {
    void addExternalContact(ExternalUserEncrypt encrypt, String bindTags, String remark, Meta meta, ContactTagServic tagServic);

    void deleteExternalContact(String externalUserID, String userID, Long teamId);

    void deleteFollower(String externalUserID, String userID, Long teamId);

    void editExternalContact(ExternalUserEncrypt encrypt, Meta meta, ContactTagServic tagServic);

    /**
     * 根据昵称或者项目查询客户
     *
     * @param concatName 客户昵称
     */
    List<Long> simpleTmAndNameQueryExtConcatIds(String concatName, Long teamId);

    ExtContact selectContactById(Long id);

    List<CustomerFollowerVo> selectFollowersByContactId(String extUserId);

    boolean bindFollowerTags(BindTagVo bind, Meta meta);

    ExtFollowContact selectFollower(String extUserId, String userId);

    void updateFollowerById(QyExtContactRemark remark);

}
